package com.jvm;

/**
 * @Author: tgy
 * @Date: 2020-07-30 09:53
 */
public class JvmTest01 {

    /**
     *
     * BootstrapClassLoader(c++ 实现) 加载 jre 中的 rt.jar
     *
     * ExtClassLoader (java) 加载jre extend 扩展包中的class文件
     *
     * AppClassLoader 加载自定义的class文件
     *
     * class 加载首先是给父加载器加载，加载到了，直接返回，如果没有加载到，才自己加载
     * 由于是先给父类加载，如果是与jdk中的类重名了，只会加载jdk中的class，不能加载自己的class
     *
     * 方法区    java栈  本地方法栈
     *
     * 堆区			pc程序计数器
     */

    public static void main(String[] args) {

        Object o = new Object();

        System.out.println(o.getClass().getClassLoader());

        JvmTest01 jvmTest01 = new JvmTest01();

        System.out.println(jvmTest01.getClass().getClassLoader());
        System.out.println(jvmTest01.getClass().getClassLoader().getParent());
        System.out.println(jvmTest01.getClass().getClassLoader().getParent().getParent());


    }
}
